Data compression has held a prominent place in computer science for many years as demand for additional data capacity of various systems increase while storage capacity and bandwidth of such systems are limited. Data compression generally falls into one of two categories: lossy and lossless. In lossy data compression, particularly high rates of data compression are achieved at the expense of distortion of the data. Such is sometimes acceptable for image, video and audio data since small distortions may be only slightly perceptible by a human viewer or listener of the subsequently decompressed data. However, in a number of applications, such distortion of the compressed data is unacceptable.
Lossless data compression reduces the size of the overall representation of data without any distortion of the data at all, i.e., without any loss of data. Lossless data compression is used primarily for compression of text, computer programs, and databases where faithful reproduction of the compressed data is essential. However, as distribution of high-quality digitized audio signals through computer networks becomes more prevalent, lossless compression of digitized audio signals with good data compression rates grows in importance.
In general, data is compressed by recognizing patterns in the data and representing such patterns in compact forms in place of the data having the recognized patterns. The degree of compression realized by a particular lossless compression mechanism depends in large part upon the correlation between patterns recognized by the mechanism and patterns in the data to be compressed. Since the majority of currently available lossless data compression mechanisms are designed for compressing textual data, such mechanisms achieve relatively good results when compressing data having patterns typically found in textual data. However, such mechanisms generally fail to achieve results as good when compressing non-textual data, e.g., data representing digitized audio signals.
In addition, the rate of data compression of lossless data compression techniques is generally inversely related to the complexity of such techniques. In real time delivery of compressed data through a delivery medium having limited bandwidth, a relatively high rate of compression of the compressed data is essential and a minimum acceptable rate of data compression is limited by the limited bandwidth of the delivery medium. At the same time, the complexity of the manner in which the data is compressed must generally be minimized such that the delivered compressed data can be decompressed without exceeding the processing bandwidth of a receiving system. Improving the rate of compression realized by a lossless data compression mechanism without simultaneously increasing the complexity of the lossless data compression is particularly difficult.
What is needed is a system for performing lossless data compression in such a way that particularly good data compression rates are realized, particularly when compressing data representing digitized audio signals, while simultaneously maintain a particularly low level of complexity of such lossless data compression.